what is the difference between encryption and hashing